package com.sunflower.common.core.domain.model;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 树状数据结构
 *
 * @author: SunLuQuan
 * @Date: 2024年04月01日 15:16
 * @Description: Tree
 */
@Data
@Accessors(chain = true)
public class Tree<T> implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 上级树对象
     */
    private Tree<T> parent;
    /**
     * 父类编号
     */
    private Serializable parentId;
    /**
     * 名称
     */
    private Serializable name;
    /**
     * 值
     */
    private Serializable value;
    /**
     * 实体数据
     */
    private T data;
    /**
     * 子集树列表
     */
    private List<Tree<T>> child;
}
